import { Inject, Provide, App } from '@midwayjs/core';
import { BaseService } from '@cool-midway/core';
import { InjectEntityModel } from '@midwayjs/typeorm';
import { Repository } from 'typeorm';
import { OrderOrderEntity } from '../entity/order';
import { PluginService } from '../../plugin/service/info';


import * as fs from 'fs';
import * as path from 'path';
import { IMidwayKoaApplication } from '@midwayjs/koa';
let WxPay = require('wechatpay-node-v3');


/**
 * 订单信息
 */
@Provide()
export class OrderPayService extends BaseService {
  @InjectEntityModel(OrderOrderEntity)
  orderOrderEntity: Repository<OrderOrderEntity>;

  @Inject()
  pluginService: PluginService;

  @Inject()
  ctx;

  @App()
  app: IMidwayKoaApplication;

  // 微信支付订单
  // async createOrder(BodyData) {
  //   let appid = 'wxc606b8c3d53b93d1'
  //   let mchid = "1692692419"
  //   let { openid } = BodyData
  //   // 生成订单号
  //   let createOrderNum = await this.pluginService.invoke('pay-wx', 'createOrderNum');

  //   // orderId: createOrderNum, // 订单号
  //   // goodsName: "", // 商品名称
  //   // goodsType: "", // 商品类型
  //   // serviceProject: "", // 服务项目
  //   // serviceDay: "", // 服务时长天
  //   // startTime: "", // 服务开始时间
  //   // price: "", // 单价
  //   // totalPrice: "", // 总价
  //   // beNurseId: "", // 被护理人Id
  //   // beNurseAddressId:1, // 被护理人地址
  //   let serviceProjectMap = {
  //     '轻症陪护':240,
  //     '重症陪护': 280
  //   }

  //   let {
  //     goodsName,
  //     goodsType,
  //     serviceProject,
  //     serviceDay,
  //     startTime,
  //     price,
  //     totalPrice,
  //     beNurseId,
  //     beNurseAddressId
  //   } = BodyData
  //   let params: any = {
  //     orderId: createOrderNum,
  //     goodsName,
  //     goodsType, // 1 住院陪护 轻 240 重 280 2 居家陪护   轻 240 重 280
  //     serviceProject, // 轻症陪护 240   重症陪护 240
  //     serviceDay,
  //     startTime,
  //     price:serviceProjectMap['serviceProject'],
  //     totalPrice:serviceProjectMap['serviceProject'] * Number(serviceDay),
  //     beNurseId,
  //     beNurseAddressId,
  //     openid
  //   }
  //   this.orderOrderEntity.save(params)

  //   const filePathkey = path.join(
  //     this.app.getBaseDir(),
  //     '..',
  //     'src',
  //     'modules',
  //     'order',
  //     'service',
  //     'cert',
  //     "apiclient_key.pem"
  //   );
  //   const filePathCert = path.join(
  //     this.app.getBaseDir(),
  //     '..',
  //     'src',
  //     'modules',
  //     'order',
  //     'service',
  //     'cert',
  //     'apiclient_cert.pem'
  //   );
  //   let unitPrice = 200
  //   const pay = new WxPay({
  //     appid, // '直连商户申请的公众号或移动应用appid'
  //     mchid,
  //     publicKey: fs.readFileSync(filePathCert), // 公钥
  //     privateKey: fs.readFileSync(filePathkey), // 秘钥
  //   });

  //   try {
  //     let params = {
  //       appid,
  //       mchid,
  //       "out_trade_no": createOrderNum,
  //       "description": "平面设计VIP套餐",
  //       "notify_url": "https://client-admin.dearweb.cn/apid/apid/wxOrderResult",
  //       "amount": {
  //         "total": Math.floor(Number(unitPrice) * 100),
  //         "currency": "CNY"
  //       },
  //       "payer": {
  //         openid
  //       }
  //     }
  //     const result1 = await pay.transactions_jsapi(params);
  //     result1.data.out_trade_no = createOrderNum
  //     return result1
  //   } catch (error) {
  //     console.log(error, 'error')
  //     return error
  //   }
  // }

}
